import pickle

"""
使用短迭代增量发布
0.0.1-用户登陆系统  此版本只适合验证登陆
0.1.5-用户注册系统  此版本在原版本上增加注册
0.1.7-优化交互界面，提升用户体验 增量式编程
0.2.0-将登陆注册模块分别区分，让代码沟通更加的方便
0.2.1-增加异常处理， 
0.2.5-将改为字典存储，并且序列化，将python的内置对象放到文件中
"""
temp={}


def login(username, password):
    '''
    用于用户登录
    :param username: 用户输入用户名
    :param password: 用户输入密码
    :return: True表示登陆成功
    '''
    try:
        with open("db", "rb") as f:
            data = pickle.load(f)
            for u,p in data.items():
                if u != username and p!=password:
                    return False
                else:
                    return True
    except IOError:
        print("The data file is missing!")
    except UnicodeDecodeError as e:
        raise e


def register(username, password):
    '''
    用户注册
    :param username: 用户名
    :param password: 密码
    :return: 默认返回None
    '''
    try:
        with open("db","wb") as f:#打开数据库
            temp[username]=password
            pickle.dump(temp,f)
    except IOError:
        print("The data file is missing!")


def main():
    """
        主页面

    """
    count = 0 
    t = input("1:登陆 2:注册\n请输入:")
    if t == "1":
        while count<=3:
            user = input("请输入用户名:")
            pwd = input("请输入密码:")
            r = login(user, pwd)#返回值
            if r: #返回值为True,判断为真
                print("登陆成功")
                break
            else:
                print("登陆失败")
                count=count+1
        else:
            print("哈哈，你个智障被锁拉")
    elif t == '2':
        user = input("请输入用户名:")
        pwd = input("请输入密码:")
        register(user, pwd)
    else:
    	print("请输入正确的编号")
    	exit()
if __name__ == '__main__':
    main()